home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
ms_dos
/
renum
/
renum.pas
< prev
Wrap
Pascal/Delphi Source File
|
1993-11-30
|
5KB
|
174 lines
{
Basic renumber for Towns(DOS machine )
386Basic ノ カエナイ(カワナイヒト) ニ ササゲマス
1993/08/07 by TMA
Usage A>RENUM infile.bas [line-no.]
language: Turbo-Pascal ver 6.0
machine : Dos machine
1 ニュウリョク ファイル (ASCII-saved) ヲ ヨム
2 1ギョウ ズツ セントウガ スウジ ナラ リナンバ
3 セントウ ニ スウジ ガナイト ナンバ ヲ フカスル
4 temp ファイル ニ シュツリョク スル
5 セイジョウ シュウリョウ スルト *.org ヲ サクジョ
6 ニュウリョク ファイルメイ ヲ *.org ニ リネーム
7 temp ヲ ニュウリョク ファイルメイ ニ リメーム
}
uses DOS;
type
str255 = string[255];
const
start_no = 990; { キテイチ ハ 1000ギョウ カラ }
var
infnam : str255;
temp_fnam : string[50];
inf,otf : text;
ior : integer;
inrec : str255;
lno : integer;
lcnt : integer;
d : Dirstr; { ファイメイ ブンカイ ヨウ }
n : Namestr;
e : extstr;
function with_lineno(msg:str255):boolean; { ギョウバンゴウ アリ ノ トキ true }
begin
if msg[1] in ['0'..'9']
then with_lineno := true
else with_lineno := false;
end;
function startp(msg:str255):integer; { BASIC ホンブン カイシイチ ハハッケン }
var p : integer;
begin
p := 0;
repeat
inc(p);
until not(msg[p] in['0'..'9']); { サイショ ノ not NUMERIC マデ loop }
startp := p;
end;
procedure renum(msg:str255); { RENUM ホンタイ }
var p : integer; { チャクモク イチ }
begin
lno := lno + 10; { ギョウバンゴウ ++ }
if length(msg) = 0 then begin { クウ ギョウ ハ REM ニ }
writeln(otf,lno:4,' ',#$27);
exit;
end;
if with_lineno(msg) then begin
write(otf,lno:4); { ギョウバンゴウ ツキ ノ ショリ }
writeln(otf,copy(msg,startp(msg),255));
end
else
writeln(otf,lno:4,' ',msg); { ギョウバンゴウ ナシ ショリ }
end;
procedure open_files; { OPEN files }
begin
assign(inf,infnam); { ニュウリョク file open }
{$i-} reset(inf); {$i+}
ior :=ioresult;
if ior <> 0 then begin
writeln('IN-File open error Code:',ior);
writeln('Program Aborted');
HAlt;
end;
assign(otf,d+temp_fnam); { TEMP file open }
{$i-} rewrite(otf); {$i+}
ior :=ioresult;
if ior <> 0 then begin
writeln('TEMP-File open error Code:',ior);
writeln('Program Aborted');
close(inf);
HAlt;
end;
end;
procedure make_temp;
begin
open_files; { OPEN files }
while not eof(inf) do begin
readln(inf,inrec);
renum(inrec);
inc(lcnt);
end;
close(inf);
close(otf);
end;
procedure copy_master; { master:rename, temp->master }
var wfnam : string[50];
tf : file; { temp file }
i,j : integer;
begin
wfnam := d + n + '.org'; { ゼンカイ ノ .org ファイル ノ サクジョ }
assign(tf,wfnam);
{$i-} erase(tf); {$i+} { error ハ ムシ }
assign(tf,infnam);
{$i-} rename(tf,wfnam); {$i+} { ニュウリョク.bas -> *.org }
ior :=ioresult;
if not(ior in [0,2]) then begin { マニュアル ニハ 0ヲ カエスト アルガ..?? }
writeln('1 ERROR Rename File ',infnam,'->',wfnam,' Code:',ior);
writeln('Program Aborted');
HAlt;
end;
assign(tf,temp_fnam);
{$i-} rename(tf,infnam); {$i+} { temp -> ニュウリョク.bas }
ior :=ioresult;
if not(ior in [0,2]) then begin
writeln('2 ERROR Rename File ',temp_fnam,'->',infnam,' Code:',ior);
writeln('Original Source is renamed to ',wfnam);
writeln('Exchanged file name is :',temp_fnam);
writeln('Program Aborted');
HAlt;
end;
end;
procedure get_param;
var i,j : integer;
begin
writeln('***** BASIC RENUM *******');
if paramcount < 1 then begin
writeln(' Usage A>RENUM infile.bas [start-lineno.]');
writeln(' make backup file to infile.org');
writeln(' target LINENO. is line head NUMELICS only ');
writeln(' [start lineno] is useless option. if designation then start +10');
halt;
end;
infnam := paramstr(1);
writeln('Select filename :',infnam);
lno := 0;
if paramcount > 1 then begin
val(paramstr(2),i,j);
if j = 0 then
lno := i;
end;
if lno = 0
then lno := start_no;
writeln('Start Lineno :',lno+10);
fsplit(infnam,d,n,e); { ファイルメイ ブンカイ }
temp_fnam := d + ')TEMP(.$$$'; { ニュウリョク ファイル ノ アルトコニ サクセイ }
end;
{----------------- MAIN -------------------- }
begin
get_param; { コマンドライン シュトク }
lcnt := 0; { ギョウスウ }
make_temp; { chane to Temp file }
copy_master; { master:rename, temp->master }
writeln ('read lines :',lcnt);
writeln ('Completed');
end.